#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//int main()
//{
//	int a1, b1, a2, b2;
//	scanf("%d/%d %d/%d", &a1, &b1, &a2, &b2);
//	int b = 0;
//	for (b = (b1 > b2 ? b1 : b2); b > 0; b++)
//	{
//		if (b % b1 == 0 && b % b2 == 0)
//		{
//			break;
//		}
//	}
//	int n = b / b1;
//	a1 *= n;
//	n = b / b2;
//	a2 *= n;
//	int a = a1 + a2;
//	if (a % b == 0)
//	{
//		printf("%d", a / b);
//	}
//	else
//	{
//		int c = 0;
//		for (c = 2; c <= (a < b ? a : b); c++)
//		{
//			if (a % c == 0 && b % c == 0)
//			{
//				break;
//			}
//		}
//		if (c > (a < b ? a : b))
//		{
//			c = 1;
//		}
//		printf("%d/%d", a/c, b/c);
//	}
//	return 0;
//}


//typedef struct deter
//{
//	char arr[11];
//	char time[11];
//	char sex;
//	char tele[18];
//	char movetele[18];
//}deter;
//
//typedef struct count
//{
//	deter* p;
//	int size;
//	int max;
//}count;
//
//int main()
//{
//	count pt;
//	int a;
//	scanf("%d", &a);
//	pt.size = 0;
//	pt.max = a - 1;
//	pt.p = (deter*)calloc(a, sizeof(deter));
//	if (pt.p == NULL)
//	{
//		return 0;
//	}
//	while (a--)
//	{
//		scanf("%s", pt.p[pt.size].arr);
//		scanf("%s", pt.p[pt.size].time);
//		scanf("%c", &pt.p[pt.size].sex);
//		scanf("%s", pt.p[pt.size].tele);
//		scanf("%s", pt.p[pt.size].movetele);
//		pt.size++;
//	}
//	int K;
//	scanf("%d", &K);
//	int arr[10000];
//	int i = 0;
//	for (i = 0; i < K; i++)
//	{
//		scanf("%d", arr[i]);
//	}
//	for (i = 0; i < K; i++)
//	{
//		if (arr[i] > pt.max)
//		{
//			printf("Not Found\n");
//		}
//		else
//		{
//			pt.size = arr[i];
//			printf("%s %s %s %c %s\n",
//				pt.p[pt.size].arr,
//				pt.p[pt.size].tele,
//				pt.p[pt.size].movetele,
//				pt.p[pt.size].sex,
//				pt.p[pt.size].time);
//		}
//	}
//	return 0;
//}


//int main()
//{
//	int arr1[10] = { 1,2,2,3,4,5,6,7,8,9 };
//	int arr2[10] = { 0 };
//	int sz = sizeof(arr1) / sizeof(arr1[0]);
//	int i;
//	for (i = 0; i < sz ; i++)
//	{
//		arr2[i] = arr1[i];
//	}
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//	return 0;
//}


//void init(int* arr,int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		*(arr + i) = 0;
//	}
//}
//void print(int* arr, int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", *(arr + i));
//	}
//	printf("\n");
//}
//void reverse(int* arr, int left, int right)
//{
//	while (left < right)
//	{
//		int num = *(arr + left);
//		*(arr + left) = *(arr + right);
//		*(arr + right) = num;
//		left++;
//		right--;
//	}
//}
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	print(arr, sz);
//	reverse(arr, 0, sz - 1);
//	print(arr, sz);
//	init(arr, sz);
//	print(arr, sz);
//	return 0;
//}

//int main()
//{
//	int arr[10] = { 1,3,2,5,4,7,6,9,8,0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int n, m;
//	for (n = 0; n < sz - 1 ; n++)
//	{
//		int j = 0;
//		for (m = 0; m < sz - n - 1; m++)
//		{
//			if (arr[m] < arr[m + 1])
//			{
//				int k = arr[m];
//				arr[m] = arr[m + 1];
//				arr[m + 1] = k;
//				j = 1;
//			}
//		}
//		if (j == 0)
//		{
//			break;
//		}
//	}
//	for (n = 0; n < sz; n++)
//	{
//		printf("%d ", arr[n]);
//	}
//	return 0;
//}


//void same(int* sum1, int* sum2)
//{
//	int a = *sum1;
//	int b = *sum2;
//	while (b)
//	{
//		int n = a % b;
//		a = b;
//		b = n;
//	}
//	(*sum1) /= a;
//	(*sum2) /= a;
//}
//void deter(int* sum1, int* sum2)
//{
//	if (*sum1 < 0)
//	{
//		int j = -1;
//		(*sum1) *= -1;
//		same(sum1, sum2);
//		(*sum1) *= j;
//	}
//	else
//	{
//		same(sum1, sum2);
//	}
//}
//int main()
//{
//	int a;
//	scanf("%d", &a);
//	int sum1 = 0;
//	int sum2 = 0;
//	int k = a;
//	while (k--)
//	{
//		int j = 1;
//		int a1, a2;
//		scanf("%d/%d", &a1, &a2);
//		if (sum1 == 0)
//		{
//			sum1 += a1;
//			sum2 += a2;
//		}
//		else
//		{
//			if (a2 == sum2)
//			{
//				sum1 += a1;
//			}
//			else
//			{
//				int n = 0;
//				for (n = (sum2 > a2 ? sum2 : a2); n > 0; n++)
//				{
//					if (n % sum2 == 0 && n % a2 == 0)
//					{
//						sum1 *= (n / sum2);
//						a1 *= (n / a2);
//						sum1 += a1;
//						sum2 = n;
//						break;
//					}
//				}
//			}
//		}
//		deter(&sum1, &sum2);
//	}
//	sum2 *= a;
//	if (sum1 % sum2 == 0)
//	{
//		printf("%d", sum1 / sum2);
//	}
//	else
//	{
//		deter(&sum1, &sum2);
//		printf("%d/%d", sum1, sum2);
//	}
//	return 0;
//}

#include <math.h>
int main()
{
	int A, N;
	scanf("%d %d", &A, &N);
	if (N == 0)
	{
		printf("0");
		return 0;
	}
	int i = 0;
	int num[100] = { 0 };
	int n = 0;
	int k = 0;
	for (i = 99; i >0; i--)
	{
		num[i] = A * (N - n) + num[i];
		int j = i-1;
		if (num[i] > 9)
		{
			num[i] = num[i] % 10;
			num[j] += (num[i] / 10);
		}
		int m = 0;
		while (num[j] > 9)
		{
			k = num[j] % 10;
			m = num[j] / 10;
			num[j] = k;
			j--;
			num[j] += m ;
		}
		n++;
		if (n == N)
		{
			break;
		}
	}
	for (i = 0; i < 100; i++)
	{
		if (i == 0)
		{
			while (num[i] == 0)
			{
				i++;
			}
		}
		printf("%d\n", num[i]);
	}
	return 0;
}